#ifndef PT_GRAPHIC_RENDER_PTGRENDER_H
#define PT_GRAPHIC_RENDER_PTGRENDER_H

#include "../Scene/PTGSceneGraph.h"

struct IPTGImage;

struct PTGCamera
{
	float m_FovAngleY;
	float m_AspectHByW;
	float m_NearZ;
	float m_FarZ;
};

struct IPTGRender
{
	virtual void Execute(
		PTGCamera *pCamera,
		uint32_t MeshNumber, IPTGMesh *MeshArray[],
		uint32_t MeshSkinNumber, IPTGMeshSkin *MeshSkinArray[],
		uint32_t TerrainNumber, IPTGTerrain *TerrainArray[],
		uint32_t OceanNumber, IPTGOcean *OceanArray[],
		IPTGImage *pImageOut
	) = 0;
};

struct alignas(alignof(uintptr_t)) PTRenderStorage { char _Pad[sizeof(uintptr_t)]; };

struct PTGCameraVR
{

};

struct IPTGRenderVR
{

};

struct alignas(alignof(uintptr_t)) PTRenderVRStorage { char _Pad[sizeof(uintptr_t)]; };

#endif